1. The Field of the Invention
The present invention relates to data processing systems. Specifically, the present invention relates to a gateway for flexibly interfacing a broad range of data origination devices with a broad range of data destination devices over a broad range of networks.
2. The Prior State of the Art
Human beings communicate with each other using a set of rules called a protocol. For example, in one culture, it might be proper to initiate a conversation with a business contact by shaking hands. During the conversation, it might be proper to listen and abstain from speaking while the contact is speaking, and to make eye contact. To end the conversation, it might be proper to state a closing remark such as xe2x80x9cgood byexe2x80x9d or xe2x80x9cI""ll see you later.xe2x80x9d A protocol also governs the way that computers communicate or exchange data within a given network. For example, a standard Internet protocol is termed HyperText Transport Protocol or HTTP.
Returning to the business contact analogy, from culture to culture, there may be a different protocol for initiating a conversation with a business contact. For example, in one culture, a hand shake will suffice. In another, a slight bow, a simultaneous hand shake, and a subsequent business card exchange might be appropriate. In yet another, a kiss on the cheek might be appropriate. What is proper in one culture may be completely inappropriate and unthinkable in another. Computer networks may also vary in protocol from network to network. Yet, it is important, especially with the advent and proliferation of the Internet, that devices from different networks communicate with each other even if they use different protocols.
A gateway is a device that acts as a go-between between different networks. A data origination device will communicate information over a network to the gateway using the protocol appropriate for that network. The gateway will then relay that information over another network to the destination device using a protocol appropriate for the second network. Sometimes the protocols for the first and second networks are the same; but often, they are different. Thus, the gateway permits communication of data over multiple networks even if those networks have different protocols.
Gateways are not functionally limited to just translating protocols, but may also perform a variety of other functions such as converting the message data from the format generated by the origination device into a format recognizable by the destination device. For example, the gateway may convert a graphics file from Graphics Interchange Format. (GIF) to Bitmap (BMP) format.
Gateways have greatly facilitated inter-network communication. However, conventional gateways are highly inflexible as they can only deal with specific protocols. For example, a gateway that receives data using the HTTP protocol, and transmits that data using another specific protocol such as Kermit File Transfer Protocol (Kermit FTP) can only receive data using HTTP, and can only transmit using Kermit FTP. The gateway would not transmit using HTTP or any other protocol except Kermit FTP.
Another inflexibility in conventional gateways is that the gateway only converts data formats from one specific format to another specific format. For example, a gateway that converts data from the Rich Text Format (RTF) into the American Standard Code for Information Interchange (ASCII) format only converts from RTF format into ASCII format.
Due to this inflexibility, device manufacturers are impeded from introducing new devices that recognize a proprietary data format type. Specifically, the device manufacturer might have to construct numerous gateways to enable data to be translated into the new format recognizable by the new device. The number of gateways needed for a particular device is a function of the number of data formats provided to the gateway, the number of protocols used to communicate the data to the gateway, and the number of protocols used to communicate the data from the gateway to the particular device.
Furthermore, a new carrier provider having its own protocol might also have to provide a number of gateways. This number is a function of the number of data formats and protocols with which data is communicated to the gateway, and the number of data formats recognizable by each device with which the carrier communicates.
In the wireless world, there is a host of wireless devices available, many of which only recognize their own proprietary data format. Furthermore, there are many wireless carriers available, each using its own protocol. Therefore, the number of conventional gateways needed to accommodate every wireless carrier and every wireless device is immense. Thus, the burden to provide gateways is great.
It is desirable to reduce the number of gateways needed to exchange data with a wide range of networks and devices such as in the wireless world.
In accordance with the present invention, a flexible gateway is provided. The gateway accommodates data transfer from a data origination device over a wide variety of networks to a wide variety of destination devices, even if those networks use different protocols, and even if the devices recognize different data formats. Thus, the gateway can perform work previously requiring numerous gateways. The gateway is particularly useful in communicating over wireless networks to wireless devices since these networks and devices in aggregate have numerous proprietary protocols and data formats. However, the advantage of the gateway can be incorporated into wired networks as well, as will be recognized to one skilled in the field of computer networks from having read this disclosure.
After the gateway receives information from a data source, the gateway identifies the specific device type of the destination device, and the specific network type of the destination network on which the destination device resides. For example, if the information is intended to go to John Doe""s cellular phone, the gateway would determine the specific type of cellular phone that John Doe is using (e.g., ABC ALPHATEXT PHONE 50000), and the specific network that is connected to the phone (e.g., WIRELESS NETWORK XYZ). Alternatively, the specific device type and network type may be included with the information provided to the gateway.
The gateway calls the appropriate device and network drivers associated with the specific device and network to create a chain of driver modules customized to the destination device and destination network. This driver chain then manipulates the data into the format recognized by the destination device, and then provides the manipulated data to the destination device over the destination network using the compatible protocol. Thus, the target device properly receives and interprets the information provided by the data source.
If, in the very next moment, data arrives at the gateway that is to be routed over a different network using a different protocol to a different device recognizing a different format, the gateway would call different device and network drivers to customize a chain of drivers for that particular destination device and network.
One important benefit is that this gateway may communicate data to a wide variety of devices over a wide variety of networks. The number of devices and networks with which the gateway can work is limited only by the number of device and network drivers available to the gateway. This flexibility is particularly beneficial in the wireless world where formats and protocols tend to vary device-to-device and network-to-network. The gateway is also flexible in that it may facilitate both unidirectional and bi-directional communication. Information may be communicated from the data origination device to the destination device as described above. However, depending on the capability of the destination device, the destination device may also communicate information to the origination device. That information might be, for example, a request for the information that the origination device is to send to the destination device.
The gateway may also call customized drivers other than the device and network drivers. For example, if the destination device is loaded with certain encryption software for decoding a certain type of encryption, the gateway may first, identify whether encryption is desired for a given message based on the device capabilities, then identify the appropriate encryption driver for the certain type of encryption, and then call the appropriate encryption module.
Additional objects and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The objects and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other objects and features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.